package com.neuedu.corejava.ch10;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;

public class GenericCollection {

	public static void main(String[] args) {
		//在大部分情况下，一个集合只用于保存一类数据
		//为了避免在获取数据时进行类型检查，可以使用泛型集合，在保存数据时进行类型检查
		//使用泛型集合语法，在定义集合对象时，进行类型的声明
		//List<Computer>list=new ArrayList<>();//jdk1.7后支持
		//List<Computer>list=new ArrayList<Computer>();//多线程不安全
		List<Computer>list=new Vector<Computer>();//Vector 功能结构与ArrayList相同；是多线程安全的
		list.add(new Computer("hp",5999));
		list.add(new Computer("hw",5900));
		list.add(new Computer("dell",5899));
		
		//使用泛型集合在保存数据时，进行类型检查，会产生类型检查异常
		//list.add(new String("hellow jiang"));
		//list.add(new Date());
		
		
		//使用泛型集合后，在获取数据时不需要进行类型转换
		for(Computer computer:list) {
			System.out.println(computer);
		}
		
		Computer obj=list.get(0);
		Iterator<Computer>iterator=list.iterator();
		while(iterator.hasNext()) {
			//使用泛型后，可以保障数据类型时不会发生类型转换异常
			Computer computer=iterator.next();
		}
		
	}
}
